/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

分布式云物理服务器
分布式云物理服务器相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef EdcpsClient_h
#define EdcpsClient_h


#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKEdcps/EdcpsApiModel.h>

@interface EdcpsClient : NSObject<JDCloudClient>{
    @private
    NSString* _userAgent;
    NSString* _serviceName;
    NSString* _version;
    }

    @property (strong,readonly,nonatomic) NSString* userAgent;

    @property (strong,readonly,nonatomic) NSString* serviceName;

    @property (strong,readonly,nonatomic) NSString* version;

    @property (strong,nonatomic) NSString* contentType;

    @property (strong,nonatomic) Credential* credential;

    @property (strong,nonatomic) SDKEnvironment* sdkEnvironment;

    @property (strong,nonatomic) NSMutableDictionary* customHeader;

    @property  (strong,nonatomic) NSString* httpRequestProtocol;

    -(void) addCustomerHeaderWithKey:(NSString*) key
    value:(NSString*) value;

    -(id)initWithGlobalConfig;

    -(id)initWithCredential:(Credential*)credential
    sdkEnvironment:(SDKEnvironment*)sdkEnvironment;
    -(id)initWithCredential:(Credential*)credential;
    /**
    modifyInstance sync request
    @param modifyInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyInstanceResponse` the request response data model
    */
    -(NSDictionary*) modifyInstanceSyncWithRequest:(EdcpsModifyInstanceRequest*) modifyInstanceRequest;

    -(void)modifyInstanceAsyncWithRequest:(EdcpsModifyInstanceRequest*) modifyInstanceRequest
    completionHandler:(void(^)(int statusCode,EdcpsModifyInstanceResponse* _Nullable modifyInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    disassociateElasticIp sync request
    @param disassociateElasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `disassociateElasticIpResponse` the request response data model
    */
    -(NSDictionary*) disassociateElasticIpSyncWithRequest:(EdcpsDisassociateElasticIpRequest*) disassociateElasticIpRequest;

    -(void)disassociateElasticIpAsyncWithRequest:(EdcpsDisassociateElasticIpRequest*) disassociateElasticIpRequest
    completionHandler:(void(^)(int statusCode,EdcpsDisassociateElasticIpResponse* _Nullable disassociateElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeElasticIps sync request
    @param describeElasticIpsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpsResponse` the request response data model
    */
    -(NSDictionary*) describeElasticIpsSyncWithRequest:(EdcpsDescribeElasticIpsRequest*) describeElasticIpsRequest;

    -(void)describeElasticIpsAsyncWithRequest:(EdcpsDescribeElasticIpsRequest*) describeElasticIpsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeElasticIpsResponse* _Nullable describeElasticIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeOS sync request
    @param describeOSRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeOSResponse` the request response data model
    */
    -(NSDictionary*) describeOSSyncWithRequest:(EdcpsDescribeOSRequest*) describeOSRequest;

    -(void)describeOSAsyncWithRequest:(EdcpsDescribeOSRequest*) describeOSRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeOSResponse* _Nullable describeOSResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeDeviceTypes sync request
    @param describeDeviceTypesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeviceTypesResponse` the request response data model
    */
    -(NSDictionary*) describeDeviceTypesSyncWithRequest:(EdcpsDescribeDeviceTypesRequest*) describeDeviceTypesRequest;

    -(void)describeDeviceTypesAsyncWithRequest:(EdcpsDescribeDeviceTypesRequest*) describeDeviceTypesRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeDeviceTypesResponse* _Nullable describeDeviceTypesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteAliasIp sync request
    @param deleteAliasIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteAliasIpResponse` the request response data model
    */
    -(NSDictionary*) deleteAliasIpSyncWithRequest:(EdcpsDeleteAliasIpRequest*) deleteAliasIpRequest;

    -(void)deleteAliasIpAsyncWithRequest:(EdcpsDeleteAliasIpRequest*) deleteAliasIpRequest
    completionHandler:(void(^)(int statusCode,EdcpsDeleteAliasIpResponse* _Nullable deleteAliasIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyElasticIpBandwidth sync request
    @param modifyElasticIpBandwidthRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyElasticIpBandwidthResponse` the request response data model
    */
    -(NSDictionary*) modifyElasticIpBandwidthSyncWithRequest:(EdcpsModifyElasticIpBandwidthRequest*) modifyElasticIpBandwidthRequest;

    -(void)modifyElasticIpBandwidthAsyncWithRequest:(EdcpsModifyElasticIpBandwidthRequest*) modifyElasticIpBandwidthRequest
    completionHandler:(void(^)(int statusCode,EdcpsModifyElasticIpBandwidthResponse* _Nullable modifyElasticIpBandwidthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeInstanceRaid sync request
    @param describeInstanceRaidRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceRaidResponse` the request response data model
    */
    -(NSDictionary*) describeInstanceRaidSyncWithRequest:(EdcpsDescribeInstanceRaidRequest*) describeInstanceRaidRequest;

    -(void)describeInstanceRaidAsyncWithRequest:(EdcpsDescribeInstanceRaidRequest*) describeInstanceRaidRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeInstanceRaidResponse* _Nullable describeInstanceRaidResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteVpc sync request
    @param deleteVpcRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteVpcResponse` the request response data model
    */
    -(NSDictionary*) deleteVpcSyncWithRequest:(EdcpsDeleteVpcRequest*) deleteVpcRequest;

    -(void)deleteVpcAsyncWithRequest:(EdcpsDeleteVpcRequest*) deleteVpcRequest
    completionHandler:(void(^)(int statusCode,EdcpsDeleteVpcResponse* _Nullable deleteVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeSubnet sync request
    @param describeSubnetRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSubnetResponse` the request response data model
    */
    -(NSDictionary*) describeSubnetSyncWithRequest:(EdcpsDescribeSubnetRequest*) describeSubnetRequest;

    -(void)describeSubnetAsyncWithRequest:(EdcpsDescribeSubnetRequest*) describeSubnetRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeSubnetResponse* _Nullable describeSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeAliasIps sync request
    @param describeAliasIpsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeAliasIpsResponse` the request response data model
    */
    -(NSDictionary*) describeAliasIpsSyncWithRequest:(EdcpsDescribeAliasIpsRequest*) describeAliasIpsRequest;

    -(void)describeAliasIpsAsyncWithRequest:(EdcpsDescribeAliasIpsRequest*) describeAliasIpsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeAliasIpsResponse* _Nullable describeAliasIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeLineTypes sync request
    @param describeLineTypesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeLineTypesResponse` the request response data model
    */
    -(NSDictionary*) describeLineTypesSyncWithRequest:(EdcpsDescribeLineTypesRequest*) describeLineTypesRequest;

    -(void)describeLineTypesAsyncWithRequest:(EdcpsDescribeLineTypesRequest*) describeLineTypesRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeLineTypesResponse* _Nullable describeLineTypesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeKeypairs sync request
    @param describeKeypairsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeKeypairsResponse` the request response data model
    */
    -(NSDictionary*) describeKeypairsSyncWithRequest:(EdcpsDescribeKeypairsRequest*) describeKeypairsRequest;

    -(void)describeKeypairsAsyncWithRequest:(EdcpsDescribeKeypairsRequest*) describeKeypairsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeKeypairsResponse* _Nullable describeKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeKeypair sync request
    @param describeKeypairRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeKeypairResponse` the request response data model
    */
    -(NSDictionary*) describeKeypairSyncWithRequest:(EdcpsDescribeKeypairRequest*) describeKeypairRequest;

    -(void)describeKeypairAsyncWithRequest:(EdcpsDescribeKeypairRequest*) describeKeypairRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeKeypairResponse* _Nullable describeKeypairResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    associateElasticIp sync request
    @param associateElasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `associateElasticIpResponse` the request response data model
    */
    -(NSDictionary*) associateElasticIpSyncWithRequest:(EdcpsAssociateElasticIpRequest*) associateElasticIpRequest;

    -(void)associateElasticIpAsyncWithRequest:(EdcpsAssociateElasticIpRequest*) associateElasticIpRequest
    completionHandler:(void(^)(int statusCode,EdcpsAssociateElasticIpResponse* _Nullable associateElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeSecondaryCidrs sync request
    @param describeSecondaryCidrsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSecondaryCidrsResponse` the request response data model
    */
    -(NSDictionary*) describeSecondaryCidrsSyncWithRequest:(EdcpsDescribeSecondaryCidrsRequest*) describeSecondaryCidrsRequest;

    -(void)describeSecondaryCidrsAsyncWithRequest:(EdcpsDescribeSecondaryCidrsRequest*) describeSecondaryCidrsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeSecondaryCidrsResponse* _Nullable describeSecondaryCidrsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createInstances sync request
    @param createInstancesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createInstancesResponse` the request response data model
    */
    -(NSDictionary*) createInstancesSyncWithRequest:(EdcpsCreateInstancesRequest*) createInstancesRequest;

    -(void)createInstancesAsyncWithRequest:(EdcpsCreateInstancesRequest*) createInstancesRequest
    completionHandler:(void(^)(int statusCode,EdcpsCreateInstancesResponse* _Nullable createInstancesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeAvailablePrivateIp sync request
    @param describeAvailablePrivateIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeAvailablePrivateIpResponse` the request response data model
    */
    -(NSDictionary*) describeAvailablePrivateIpSyncWithRequest:(EdcpsDescribeAvailablePrivateIpRequest*) describeAvailablePrivateIpRequest;

    -(void)describeAvailablePrivateIpAsyncWithRequest:(EdcpsDescribeAvailablePrivateIpRequest*) describeAvailablePrivateIpRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeAvailablePrivateIpResponse* _Nullable describeAvailablePrivateIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    resetPassword sync request
    @param resetPasswordRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `resetPasswordResponse` the request response data model
    */
    -(NSDictionary*) resetPasswordSyncWithRequest:(EdcpsResetPasswordRequest*) resetPasswordRequest;

    -(void)resetPasswordAsyncWithRequest:(EdcpsResetPasswordRequest*) resetPasswordRequest
    completionHandler:(void(^)(int statusCode,EdcpsResetPasswordResponse* _Nullable resetPasswordResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeElasticIp sync request
    @param describeElasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpResponse` the request response data model
    */
    -(NSDictionary*) describeElasticIpSyncWithRequest:(EdcpsDescribeElasticIpRequest*) describeElasticIpRequest;

    -(void)describeElasticIpAsyncWithRequest:(EdcpsDescribeElasticIpRequest*) describeElasticIpRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeElasticIpResponse* _Nullable describeElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteKeypairs sync request
    @param deleteKeypairsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteKeypairsResponse` the request response data model
    */
    -(NSDictionary*) deleteKeypairsSyncWithRequest:(EdcpsDeleteKeypairsRequest*) deleteKeypairsRequest;

    -(void)deleteKeypairsAsyncWithRequest:(EdcpsDeleteKeypairsRequest*) deleteKeypairsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDeleteKeypairsResponse* _Nullable deleteKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    stopInstance sync request
    @param stopInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `stopInstanceResponse` the request response data model
    */
    -(NSDictionary*) stopInstanceSyncWithRequest:(EdcpsStopInstanceRequest*) stopInstanceRequest;

    -(void)stopInstanceAsyncWithRequest:(EdcpsStopInstanceRequest*) stopInstanceRequest
    completionHandler:(void(^)(int statusCode,EdcpsStopInstanceResponse* _Nullable stopInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeEdCPSRegions sync request
    @param describeEdCPSRegionsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeEdCPSRegionsResponse` the request response data model
    */
    -(NSDictionary*) describeEdCPSRegionsSyncWithRequest:(EdcpsDescribeEdCPSRegionsRequest*) describeEdCPSRegionsRequest;

    -(void)describeEdCPSRegionsAsyncWithRequest:(EdcpsDescribeEdCPSRegionsRequest*) describeEdCPSRegionsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeEdCPSRegionsResponse* _Nullable describeEdCPSRegionsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createKeypairs sync request
    @param createKeypairsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createKeypairsResponse` the request response data model
    */
    -(NSDictionary*) createKeypairsSyncWithRequest:(EdcpsCreateKeypairsRequest*) createKeypairsRequest;

    -(void)createKeypairsAsyncWithRequest:(EdcpsCreateKeypairsRequest*) createKeypairsRequest
    completionHandler:(void(^)(int statusCode,EdcpsCreateKeypairsResponse* _Nullable createKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeVpcs sync request
    @param describeVpcsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcsResponse` the request response data model
    */
    -(NSDictionary*) describeVpcsSyncWithRequest:(EdcpsDescribeVpcsRequest*) describeVpcsRequest;

    -(void)describeVpcsAsyncWithRequest:(EdcpsDescribeVpcsRequest*) describeVpcsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeVpcsResponse* _Nullable describeVpcsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeVpc sync request
    @param describeVpcRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcResponse` the request response data model
    */
    -(NSDictionary*) describeVpcSyncWithRequest:(EdcpsDescribeVpcRequest*) describeVpcRequest;

    -(void)describeVpcAsyncWithRequest:(EdcpsDescribeVpcRequest*) describeVpcRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeVpcResponse* _Nullable describeVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeInstances sync request
    @param describeInstancesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstancesResponse` the request response data model
    */
    -(NSDictionary*) describeInstancesSyncWithRequest:(EdcpsDescribeInstancesRequest*) describeInstancesRequest;

    -(void)describeInstancesAsyncWithRequest:(EdcpsDescribeInstancesRequest*) describeInstancesRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeInstancesResponse* _Nullable describeInstancesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifySubnet sync request
    @param modifySubnetRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifySubnetResponse` the request response data model
    */
    -(NSDictionary*) modifySubnetSyncWithRequest:(EdcpsModifySubnetRequest*) modifySubnetRequest;

    -(void)modifySubnetAsyncWithRequest:(EdcpsModifySubnetRequest*) modifySubnetRequest
    completionHandler:(void(^)(int statusCode,EdcpsModifySubnetResponse* _Nullable modifySubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteInstance sync request
    @param deleteInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteInstanceResponse` the request response data model
    */
    -(NSDictionary*) deleteInstanceSyncWithRequest:(EdcpsDeleteInstanceRequest*) deleteInstanceRequest;

    -(void)deleteInstanceAsyncWithRequest:(EdcpsDeleteInstanceRequest*) deleteInstanceRequest
    completionHandler:(void(^)(int statusCode,EdcpsDeleteInstanceResponse* _Nullable deleteInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeInstanceStatus sync request
    @param describeInstanceStatusRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceStatusResponse` the request response data model
    */
    -(NSDictionary*) describeInstanceStatusSyncWithRequest:(EdcpsDescribeInstanceStatusRequest*) describeInstanceStatusRequest;

    -(void)describeInstanceStatusAsyncWithRequest:(EdcpsDescribeInstanceStatusRequest*) describeInstanceStatusRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeInstanceStatusResponse* _Nullable describeInstanceStatusResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteelasticIp sync request
    @param deleteelasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteelasticIpResponse` the request response data model
    */
    -(NSDictionary*) deleteelasticIpSyncWithRequest:(EdcpsDeleteelasticIpRequest*) deleteelasticIpRequest;

    -(void)deleteelasticIpAsyncWithRequest:(EdcpsDeleteelasticIpRequest*) deleteelasticIpRequest
    completionHandler:(void(^)(int statusCode,EdcpsDeleteelasticIpResponse* _Nullable deleteelasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeSubnets sync request
    @param describeSubnetsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSubnetsResponse` the request response data model
    */
    -(NSDictionary*) describeSubnetsSyncWithRequest:(EdcpsDescribeSubnetsRequest*) describeSubnetsRequest;

    -(void)describeSubnetsAsyncWithRequest:(EdcpsDescribeSubnetsRequest*) describeSubnetsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeSubnetsResponse* _Nullable describeSubnetsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    restartInstance sync request
    @param restartInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `restartInstanceResponse` the request response data model
    */
    -(NSDictionary*) restartInstanceSyncWithRequest:(EdcpsRestartInstanceRequest*) restartInstanceRequest;

    -(void)restartInstanceAsyncWithRequest:(EdcpsRestartInstanceRequest*) restartInstanceRequest
    completionHandler:(void(^)(int statusCode,EdcpsRestartInstanceResponse* _Nullable restartInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeElasticIpStock sync request
    @param describeElasticIpStockRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpStockResponse` the request response data model
    */
    -(NSDictionary*) describeElasticIpStockSyncWithRequest:(EdcpsDescribeElasticIpStockRequest*) describeElasticIpStockRequest;

    -(void)describeElasticIpStockAsyncWithRequest:(EdcpsDescribeElasticIpStockRequest*) describeElasticIpStockRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeElasticIpStockResponse* _Nullable describeElasticIpStockResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    importKeypairs sync request
    @param importKeypairsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `importKeypairsResponse` the request response data model
    */
    -(NSDictionary*) importKeypairsSyncWithRequest:(EdcpsImportKeypairsRequest*) importKeypairsRequest;

    -(void)importKeypairsAsyncWithRequest:(EdcpsImportKeypairsRequest*) importKeypairsRequest
    completionHandler:(void(^)(int statusCode,EdcpsImportKeypairsResponse* _Nullable importKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    startInstance sync request
    @param startInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `startInstanceResponse` the request response data model
    */
    -(NSDictionary*) startInstanceSyncWithRequest:(EdcpsStartInstanceRequest*) startInstanceRequest;

    -(void)startInstanceAsyncWithRequest:(EdcpsStartInstanceRequest*) startInstanceRequest
    completionHandler:(void(^)(int statusCode,EdcpsStartInstanceResponse* _Nullable startInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createSecondaryCidr sync request
    @param createSecondaryCidrRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createSecondaryCidrResponse` the request response data model
    */
    -(NSDictionary*) createSecondaryCidrSyncWithRequest:(EdcpsCreateSecondaryCidrRequest*) createSecondaryCidrRequest;

    -(void)createSecondaryCidrAsyncWithRequest:(EdcpsCreateSecondaryCidrRequest*) createSecondaryCidrRequest
    completionHandler:(void(^)(int statusCode,EdcpsCreateSecondaryCidrResponse* _Nullable createSecondaryCidrResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeDeviceStock sync request
    @param describeDeviceStockRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeviceStockResponse` the request response data model
    */
    -(NSDictionary*) describeDeviceStockSyncWithRequest:(EdcpsDescribeDeviceStockRequest*) describeDeviceStockRequest;

    -(void)describeDeviceStockAsyncWithRequest:(EdcpsDescribeDeviceStockRequest*) describeDeviceStockRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeDeviceStockResponse* _Nullable describeDeviceStockResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeInstance sync request
    @param describeInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceResponse` the request response data model
    */
    -(NSDictionary*) describeInstanceSyncWithRequest:(EdcpsDescribeInstanceRequest*) describeInstanceRequest;

    -(void)describeInstanceAsyncWithRequest:(EdcpsDescribeInstanceRequest*) describeInstanceRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeInstanceResponse* _Nullable describeInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeInstanceName sync request
    @param describeInstanceNameRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceNameResponse` the request response data model
    */
    -(NSDictionary*) describeInstanceNameSyncWithRequest:(EdcpsDescribeInstanceNameRequest*) describeInstanceNameRequest;

    -(void)describeInstanceNameAsyncWithRequest:(EdcpsDescribeInstanceNameRequest*) describeInstanceNameRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeInstanceNameResponse* _Nullable describeInstanceNameResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createSubnet sync request
    @param createSubnetRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createSubnetResponse` the request response data model
    */
    -(NSDictionary*) createSubnetSyncWithRequest:(EdcpsCreateSubnetRequest*) createSubnetRequest;

    -(void)createSubnetAsyncWithRequest:(EdcpsCreateSubnetRequest*) createSubnetRequest
    completionHandler:(void(^)(int statusCode,EdcpsCreateSubnetResponse* _Nullable createSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createAliasIp sync request
    @param createAliasIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createAliasIpResponse` the request response data model
    */
    -(NSDictionary*) createAliasIpSyncWithRequest:(EdcpsCreateAliasIpRequest*) createAliasIpRequest;

    -(void)createAliasIpAsyncWithRequest:(EdcpsCreateAliasIpRequest*) createAliasIpRequest
    completionHandler:(void(^)(int statusCode,EdcpsCreateAliasIpResponse* _Nullable createAliasIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyVpc sync request
    @param modifyVpcRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyVpcResponse` the request response data model
    */
    -(NSDictionary*) modifyVpcSyncWithRequest:(EdcpsModifyVpcRequest*) modifyVpcRequest;

    -(void)modifyVpcAsyncWithRequest:(EdcpsModifyVpcRequest*) modifyVpcRequest
    completionHandler:(void(^)(int statusCode,EdcpsModifyVpcResponse* _Nullable modifyVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeDeviceRaids sync request
    @param describeDeviceRaidsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeviceRaidsResponse` the request response data model
    */
    -(NSDictionary*) describeDeviceRaidsSyncWithRequest:(EdcpsDescribeDeviceRaidsRequest*) describeDeviceRaidsRequest;

    -(void)describeDeviceRaidsAsyncWithRequest:(EdcpsDescribeDeviceRaidsRequest*) describeDeviceRaidsRequest
    completionHandler:(void(^)(int statusCode,EdcpsDescribeDeviceRaidsResponse* _Nullable describeDeviceRaidsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createVpc sync request
    @param createVpcRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createVpcResponse` the request response data model
    */
    -(NSDictionary*) createVpcSyncWithRequest:(EdcpsCreateVpcRequest*) createVpcRequest;

    -(void)createVpcAsyncWithRequest:(EdcpsCreateVpcRequest*) createVpcRequest
    completionHandler:(void(^)(int statusCode,EdcpsCreateVpcResponse* _Nullable createVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    reinstallInstance sync request
    @param reinstallInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `reinstallInstanceResponse` the request response data model
    */
    -(NSDictionary*) reinstallInstanceSyncWithRequest:(EdcpsReinstallInstanceRequest*) reinstallInstanceRequest;

    -(void)reinstallInstanceAsyncWithRequest:(EdcpsReinstallInstanceRequest*) reinstallInstanceRequest
    completionHandler:(void(^)(int statusCode,EdcpsReinstallInstanceResponse* _Nullable reinstallInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteSubnet sync request
    @param deleteSubnetRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteSubnetResponse` the request response data model
    */
    -(NSDictionary*) deleteSubnetSyncWithRequest:(EdcpsDeleteSubnetRequest*) deleteSubnetRequest;

    -(void)deleteSubnetAsyncWithRequest:(EdcpsDeleteSubnetRequest*) deleteSubnetRequest
    completionHandler:(void(^)(int statusCode,EdcpsDeleteSubnetResponse* _Nullable deleteSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    applyElasticIps sync request
    @param applyElasticIpsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `applyElasticIpsResponse` the request response data model
    */
    -(NSDictionary*) applyElasticIpsSyncWithRequest:(EdcpsApplyElasticIpsRequest*) applyElasticIpsRequest;

    -(void)applyElasticIpsAsyncWithRequest:(EdcpsApplyElasticIpsRequest*) applyElasticIpsRequest
    completionHandler:(void(^)(int statusCode,EdcpsApplyElasticIpsResponse* _Nullable applyElasticIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteSecondaryCidr sync request
    @param deleteSecondaryCidrRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteSecondaryCidrResponse` the request response data model
    */
    -(NSDictionary*) deleteSecondaryCidrSyncWithRequest:(EdcpsDeleteSecondaryCidrRequest*) deleteSecondaryCidrRequest;

    -(void)deleteSecondaryCidrAsyncWithRequest:(EdcpsDeleteSecondaryCidrRequest*) deleteSecondaryCidrRequest
    completionHandler:(void(^)(int statusCode,EdcpsDeleteSecondaryCidrResponse* _Nullable deleteSecondaryCidrResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;

    /**
    edcps common sync request
    @param  jdcloudDataRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
    */
    -(NSDictionary*) edcpsCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                           url:(NSString*) url
                                        method:(NSString*) method;

    -(void)edcpsCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                  url:(NSString*) url
                               method:(NSString*) method
                    completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;

    @end


    #endif /* EdcpsClient_h */
